package com.lovo.atm.service;


import com.lovo.atm.bean.UserBean;

public interface IUserService {

    /**
     * 存钱,同时添加交易明细
     * @param code 用户的帐号
     * @param money 金额
     */
    void saveMoney(String code, double money);

    /**
     * 取钱
     * 1.按账户查询账号对象
     * 2.比较账号对象金额和取款金额，如果取款金额大于存款金额
     * 3、如果余额充足，将帐号减少金额
     * 4、记录交易明细
     * @param code 用户
     * @param money 取款金额
     * @return 是否成功
     */
    boolean getMoney(String code, double money);

    /**
     * 转账
     * 1.按原账号和目标账户，查询源账户对象和目标账号对象
     * 2.如果目标账号对象为null，返回“目标账号不存在 ”
     * 3.如果源账号余额小于转账金额，返回"余额不足"
     * 4.源账号减去金额
     * 5.目标账户加上金额
     * 6.记录原账户转出金额的交易日志
     * 7.记录目标账户转入金额的交易日志
     * @param code 转账的用户
     * @param toName 被转的用户名
     * @param money 金额
     * @return 是否成功
     */
    String transfer(String code, String toName, double money);

    /**
     * 按帐号查询帐号对象
     * @param  code  帐号
     * @return 帐号对象
     */
    UserBean findByCode(String code);

    /**
     * 登录
     *
     *  @param name 用户名
     *  @param pwd  密码
     *  @return 登录的用户，登陆失败，返回null
     */
    UserBean login(String name, String pwd);
}
